//
//  ShopManager.cpp
//  petgame
//
//  Created by zz on 2018/12/14.
//

#include "ShopManager.hpp"

//初始化静态对象
ShopManager*ShopManager::instance=NULL;
//获取单例
ShopManager*ShopManager::getInstance(){
//    判断instance是否为空
    if(!instance){
//        为空就创建对象
        instance=new ShopManager();
        instance->init();
//        instance->autorelease();
        return instance;
    }else{
//        不为空直接a返回该对象
        return instance;
    }
}
bool ShopManager::init(){
    
//父类初始化
    if(!Node::init()){
        
        return false;
    }
    
//    初始化数据
    this->_maxSize=5;
    this->_glodCount=1200;
//    创建游戏定时器，用于更新金币数量
    schedule(schedule_selector(ShopManager::toupateGlod),5);
    return true;
}

void ShopManager::toaddItem(ItemInfo *iteminfo){

//    判断集合容器是否超出d最大数量
    if((int)(this->iteminfos.size())<=5){
//        添加新对象到集合容器中
        this->iteminfos.pushBack(iteminfo);
    }
}
void ShopManager::toClean(){

//    this->iteminfos.clear();
}


int ShopManager::getCount(){
    
//    返回集合容器的对象数量
    return this->iteminfos.size();
}

Vector<ItemInfo*> ShopManager::getAllItemInfo(){
//    返回该集合容器，用于在外界操作
    log("hello + %i",this->iteminfos.size());
    return this->iteminfos;
}

void  ShopManager::toDeleteItemByIndex(int index){
//    根据index删除指定位置下的对象，方便在外界快速清除指定商品
    int cindex=-1;
    for(auto item =this->iteminfos.begin();item!=this->iteminfos.end();item++){
        
        cindex++;
        if(cindex==index){
            this->iteminfos.eraseObject((*item));
            break;
        }
    }
}


void ShopManager::setGlod(int count){
//    设置游戏中的金币数量
    this->_glodCount=count;
}
int ShopManager::getGlod(){
    
//    获取游戏中的金币数量
    return this->_glodCount;
}

bool ShopManager::lessGlod(int less){
//    f判断是否还有金币剩余，一方面对判断玩家当前的购买力
    int lessglod=this->_glodCount-less;
    if(lessglod>=0){
        
        this->setGlod(lessglod);
        return true;
    }
    return false;
}

void  ShopManager::toupateGlod(float dt){
    
//    更新金币数量，给玩家带来收益
    if(this->_glodCount<=5000){
        
        this->_glodCount+=5;
    }
}









